## API Report File for "@backstage/plugin-gitops-profiles"

> Do not edit this file. It is a report generated by [API Extractor](https://api-extractor.com/).

```ts
/// <reference types="react" />

import { ApiRef } from '@backstage/core-plugin-api';
import { BackstagePlugin } from '@backstage/core-plugin-api';
import { JSX as JSX_2 } from 'react';
import { RouteRef } from '@backstage/core-plugin-api';

// @public (undocumented)
export interface ApplyProfileRequest {
  // (undocumented)
  gitHubToken: string;
  // (undocumented)
  gitHubUser: string;
  // (undocumented)
  profiles: string[];
  // (undocumented)
  targetOrg: string;
  // (undocumented)
  targetRepo: string;
}

// @public (undocumented)
export interface ChangeClusterStateRequest {
  // (undocumented)
  clusterState: 'present' | 'absent';
  // (undocumented)
  gitHubToken: string;
  // (undocumented)
  gitHubUser: string;
  // (undocumented)
  targetOrg: string;
  // (undocumented)
  targetRepo: string;
}

// @public (undocumented)
export interface CloneFromTemplateRequest {
  // (undocumented)
  gitHubToken: string;
  // (undocumented)
  gitHubUser: string;
  // (undocumented)
  secrets: {
    awsAccessKeyId: string;
    awsSecretAccessKey: string;
  };
  // (undocumented)
  targetOrg: string;
  // (undocumented)
  targetRepo: string;
  // (undocumented)
  templateRepository: string;
}

// @public (undocumented)
export interface ClusterStatus {
  // (undocumented)
  conclusion: string;
  // (undocumented)
  link: string;
  // (undocumented)
  name: string;
  // (undocumented)
  runStatus: Status[];
  // (undocumented)
  status: string;
}

// @public (undocumented)
export class FetchError extends Error {
  // (undocumented)
  static forResponse(resp: Response): Promise<FetchError>;
  // (undocumented)
  get name(): string;
}

// @public (undocumented)
export interface GithubUserInfoRequest {
  // (undocumented)
  accessToken: string;
}

// @public (undocumented)
export interface GithubUserInfoResponse {
  // (undocumented)
  login: string;
}

// @public (undocumented)
export type GitOpsApi = {
  url: string;
  fetchLog(req: PollLogRequest): Promise<StatusResponse>;
  changeClusterState(req: ChangeClusterStateRequest): Promise<any>;
  cloneClusterFromTemplate(req: CloneFromTemplateRequest): Promise<any>;
  applyProfiles(req: ApplyProfileRequest): Promise<any>;
  listClusters(req: ListClusterRequest): Promise<ListClusterStatusesResponse>;
  fetchUserInfo(req: GithubUserInfoRequest): Promise<GithubUserInfoResponse>;
};

// @public (undocumented)
export const gitOpsApiRef: ApiRef<GitOpsApi>;

// @public (undocumented)
export const GitopsProfilesClusterListPage: () => JSX_2.Element;

// @public (undocumented)
export const GitopsProfilesClusterPage: () => JSX_2.Element;

// @public (undocumented)
export const GitopsProfilesCreatePage: () => JSX_2.Element;

// @public (undocumented)
const gitopsProfilesPlugin: BackstagePlugin<
  {
    listPage: RouteRef<undefined>;
    detailsPage: RouteRef<{
      owner: string;
      repo: string;
    }>;
    createPage: RouteRef<undefined>;
  },
  {}
>;
export { gitopsProfilesPlugin };
export { gitopsProfilesPlugin as plugin };

// @public (undocumented)
export class GitOpsRestApi implements GitOpsApi {
  constructor(url?: string);
  // (undocumented)
  applyProfiles(req: ApplyProfileRequest): Promise<any>;
  // (undocumented)
  changeClusterState(req: ChangeClusterStateRequest): Promise<any>;
  // (undocumented)
  cloneClusterFromTemplate(req: CloneFromTemplateRequest): Promise<any>;
  // (undocumented)
  fetchLog(req: PollLogRequest): Promise<StatusResponse>;
  // (undocumented)
  fetchUserInfo(req: GithubUserInfoRequest): Promise<GithubUserInfoResponse>;
  // (undocumented)
  listClusters(req: ListClusterRequest): Promise<ListClusterStatusesResponse>;
  // (undocumented)
  url: string;
}

// @public (undocumented)
export interface ListClusterRequest {
  // (undocumented)
  gitHubToken: string;
  // (undocumented)
  gitHubUser: string;
}

// @public (undocumented)
export interface ListClusterStatusesResponse {
  // (undocumented)
  result: ClusterStatus[];
}

// @public (undocumented)
export interface PollLogRequest {
  // (undocumented)
  gitHubToken: string;
  // (undocumented)
  gitHubUser: string;
  // (undocumented)
  targetOrg: string;
  // (undocumented)
  targetRepo: string;
}

// @public (undocumented)
export interface Status {
  // (undocumented)
  conclusion: string;
  // (undocumented)
  message: string;
  // (undocumented)
  status: string;
}

// @public (undocumented)
export interface StatusResponse {
  // (undocumented)
  link: string;
  // (undocumented)
  result: Status[];
  // (undocumented)
  status: string;
}
```
